-
Notifications
You must be signed in to change notification settings - Fork 42
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: QUIC #282
feat: QUIC #282
Conversation
Some blocking issues:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good job!
Check the benchmark, please. It stack overflows on my Windows machine. |
It turns out that the data is just too big. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
This PR introduces QUIC (and HTTP/3) support via quinn-proto.
Features ported from quinn-udp
Missing
recvmsg
viarecvmmsg
(will explain later)Features ported from quinn
Almost all features except:
Features ported from h3-quinn
Performance
quinn-udp uses
recvmmsg
syscall on supported platforms to improve performance. I did not port this feature as io_uring does not have corresponding opcode. As a result, our implementation is slightly slower than quinn when using io-uring driver (and of course much slower if using polling driver). Using multishot opcode may improve performance, but it's stilling pending (#104).On platforms that does not support
recvmmsg
it still has some distance, and unfortunately benchmark program is not running on Windows. I think there may be some issues in my benchmark code.